#ifndef __NETWORK_H__
#define __NETWORK_H__

#pragma once
/*
#include <Singleton.h>
using namespace util;

class IOCPServer;

typedef VOID		(*fnOnAcceptServer)( DWORD dwSessionIndex );
typedef VOID		(*fnOnDisconnectServer)( DWORD dwSessionIndex );
typedef VOID		(*fnOnConnectServer)( DWORD dwSessionIndex, BOOL bSuccess );
typedef VOID		(*fnOnRecvServer)( DWORD dwSessionIndex, BYTE *pMsg, WORD wSize );
typedef VOID		(*fnOnAcceptClient)( DWORD dwSessionIndex );
typedef VOID		(*fnOnDisconnectClient)( DWORD dwSessionIndex );
typedef VOID		(*fnOnConnectClient)( DWORD dwSessionIndex, BOOL bSuccess );
typedef VOID		(*fnOnRecvClient)( DWORD dwSessionIndex, BYTE *pMsg, WORD wSize );

class Network : public Singleton<Network>
{
public:
	
	Network();
	~Network();

	VOID					Init(	fnOnAcceptServer _fnOnServerAccept,	fnOnDisconnectServer _fnOnServerDisconnect, 
									fnOnConnectServer _fnOnServerConnect, fnOnRecvServer _fnOnServerRecv,
									fnOnAcceptClient _fnOnClientAccept,	fnOnDisconnectClient _fnOnClientDisconnect, 
									fnOnConnectClient _fnOnClientConnect, fnOnRecvClient _fnOnClientRecv );
	VOID					Release();
	BOOL					StartServer( char * szIP, WORD wPort );
	BOOL					StartClient( char * szIP, WORD wPort );
	VOID					ConnectToClient( char * szIP, WORD wPort );
	VOID					ConnectToServer( char * szIP, WORD wPort );

	VOID					SendToServer( DWORD dwIndex, BYTE * pMsg, WORD wSize );
	VOID					SendToClient( DWORD dwIndex, BYTE * pMsg, WORD wSize );

	VOID					DisconnectServer( DWORD dwIndex );
	VOID					DisconnectClient( DWORD dwIndex );


	VOID					Update();

private:

	enum { CLIENT_IOHANDLER = 0, SERVER_IOHANDLER = 1, };
	IOCPServer *			m_pIOCPServer;
	
};
*/
#endif // __NETWORK_H__